内核(24)
  • LAT名称
  • 文档(文件大小)
  • 下载次数
  • 软件包(文件大小)
  • 下载次数
  • 更新时间
  • 分享
LAT1352 STM32G474 FPU性能优化与测试
(0.1M)
33
2024-03-21

文档说明:客户在使用 STM32G474 时,希望使用 FPU 进行浮点运算,并优化其性能。本文 从 STM32G474 系统的角度、ARM DSP Lib、编译选项的影响等几个方面探讨如何提升整体性能,并介绍如何使用 KEIL 工具进行测量。

LAT1399 如何确保对APB外设寄存器的写操作写入完成
(0.1M)
21
(0.1M)
12
2024-03-21

文档说明:在一些支持双 bank 的 MCU 中,通常都会有一个控制 bank 切换的寄存器位,例如STM32F4 和 STM32L4 是 FB_MODE 寄存器位,STM32L0 是 UFB 寄存器位。我们可以通过配置这个位来进行快速 bank 切换,这个功能实际上是通过对 bank 进行重映射和设置别名来实现的。以大小为 2MB flash 的 STM32F4 为例,使用 SYSCFG_MEMRMP 寄存器的 FB_MODE 进行切换。

LAT1363 浅析单次事件进入两次中断问题
(0.1M)
157
2024-01-03

文档说明:在使用基于 ARM CORTEX-M3、M4 或 M7 系列的 STM32 芯片做产品开发时,可能有人遇到过单次事件会触发两次中断的情形。或许对异常现象的表述不尽相同,比方有的人会说怎么中断请求标志要清 2 次才行;由于中断里有些执行操作,有人会说代码里明明只执行一次,可实际运行时却是两次;有的人会说,有些执行动作放在中断外执行正常,放到中断服务程序里又异常了等等。记得有一次,有个 STM32 用户反映,他的 SPI 实际发送效果跟程序代码里设计的完全不一样,明明是 8 位发送,硬生生变成了 16 位发送

LAT1281 数据意外变化导致条件判断流程异常v1.0
(0.1M)
268
2023-06-08

文档说明:用户使用的 MCU 型号是 STM32H750VB。 在客户的代码中有多个条件语句,在条件里面的变量数值没有变化的情况下执行了条件里面的逻辑。即变量 A 在明明没有变化且条件不满足的情况下, 程序运行时偏偏执行了条件内部的代码. 很奇怪的现象。一时很难判断是编译器的问题还是芯片问题。

LAT1256 使用STM32的DWT单元监控内存
(0.1M)
296
(0.1M)
190
2023-02-08

文档说明:关于 DWT(Data watchpoint and trace unit),相信有很多工程师都知道,其可用于 us级别的延时。今天想和大家分享的是,通过 DWT 检测特定内存变量或函数,当其被修改或被调用时,可以触发中断,通过这样的方式,实现一些特殊的调试手段。

LAT1240 MPU子区话题
(0.1M)
275
2023-02-03

文档说明:本篇内容主要涉及内核 MPU 配置方面的东西,重点针对客户的疑问做了些解答,对 MPU 配置中的子区概念做了较为详细的解读,以供参考。

LAT1199 TrustZone架构下LPBAM使用导致的HardFault
(0.1M)
283
2023-02-03

文档说明:客户在 Nucleo-U575ZI 开发板上使用 TrustZone 架构,测试 LPBAM 功能。首先使能了 TrustZone 架构,然后将 LPGPIO 映射到了非安全区,并且配置了 DMA 链表功能,使用 LPTimer 作为触发,自动地修改 LPGPIO 的寄器,从而达到在低功耗模式下,GPIO自动切换的功能。但遇到了 LPDMA 的配置问题,并且程序无法跳转到 Non-Secure 工程。

LAT1209 Arm®v7-M架构的STM32如何启用DWT进行计数
(0.1M)
296
2023-02-03

文档说明:客户在使用 STM32H7 的时候,想要使用 DWT 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 DWT 进行计数。

LAT0609 基于STM32F0芯片IAP应用中不同代码区跳转问题.docx
(0.6M)
440
2018-06-04

文档说明:本文以STM32F0为例,就芯片内【从BOOT区跳转到APP区】【从APP区跳转到新APP区】【从APP区跳回BOOT区】的跳转问题做一些交流与介绍。

LAT0631 STM8使用24MHz外部晶振无法正常运行
(0.2M)
297
2018-03-22

文档说明:本文以STM8AF52A9单片机为例,详细说明其使用24MHz外部晶振无法正常运行的原因及问题解决方法。

LAT0340 STM32F7 MPU Cache浅析
(0.5M)
344
2017-03-03

文档说明:本文会从结构,原理以及应用方面对MPU和Cache进行分析,主要目的是希望读者对Cache有基本的了解,在具体的实际应用中,使用带有一级cache的MCU时,避免常见的错误。

LAT0269 RMW(Read-Modify-Write)对STM32F7xx内核运行速度的影响
(0.4M)
249
(0.0M)
219
2016-11-17

文档说明:在客户使用STM32F7xx(Cortex-M7内核)实际测试中,会发现同等主频下STM32F4xx(Cortex-M4)执行同样一段简单程序在时间上要快于STM32F7xx,这个会影响到客户切换到STM32F7xx的信心,也对ST以及ARM宣传上Cortex-M7内核执行时间远快于Cortex-M4内核的说法提出质疑,本文将针对具体案例说明这一情况的产生以及解决办法。

LAT0244 stm32缓存对齐的问题
(0.3M)
315
2016-08-09

文档说明:在我们对STM32进行编程的时候,都会用到变量,因为我们的MCU是32位的,所以在申请变量的时候,就会存在变量长度不一致,需要对齐的问题.这个变量长度对齐的问题,小则可以只是影响代码执行的效率,大则会出现系统hard-fault的问题.下面我们将详细的解说这个问题.

LAT0214 STM32F3xx_STM32F4xx使用浮点开方指令
(0.4M)
319
2016-06-28

文档说明:STM32F3xx/STM32F4xx(ARM Cortex-M4内核)中集成了FPU,也就是浮点指令单元,可以将浮点运算变得简单快速,但如果想要发挥出这个浮点运算的最大功效,必须使用浮点指令集,开发者可以直接使用浮点指令集,但目前随着系统的集成度更大,开发者还是希望使用C语言进行编程,还要求执行时间短,当调用DSP_Lib库函数方式,时会有执行时间长的问题,本文以浮点开方为例对此类需求做相关说明。

LAT0205 如何将coremark程序移植到STM32上
(1.1M)
302
2016-05-05

文档说明:本文将一步步来介绍如何将下载的CoreMark测试代码移植到STM32MCU上进行测试。

LAT0201 EXTI重复配置两次导致误触发中断的问题
(0.1M)
310
2016-03-31

文档说明:某客户在其产品的设计中,使用了STM32F302CCT6。客户在开发过程中,其所配置的EXTI 外部中断,在外部没有中断信号的情况下,上电后运行程序,总是会进入EXTI 中断程序一次。

LAT0143 STM32F30x的ADC采样的傅立叶变换
(0.3M)
334
(3.0M)
287
2015-11-11

文档说明:本文目的是演示如何使用STM32F30x 内部的DSP 进行浮点快速傅立叶变换(FFT),为联系实际应用,使用ADC 对波形发生器进行ADC 采样,然后对ADC 采样结果进行FFT, 与Matlab 仿真结果进行比较察看最终结果的准确性。会使用到ARM的DSP 库文件,以及STM32F30x 的浮点运算单元以及DSP 指令等。

LAT0025 鬼魅一样的 Hard Fault
(0.3M)
306
2015-07-28

文档说明:该问题由某客户提出,发生在 STM32F101C8T6 器件上。据其工程师讲述:其某型号产品的设计中用到了 STM32F101C8T6 器件。在软件调试过程中,遇到了一个棘手的问题:程序会莫名其妙的跳到 Hard Fault 中断。在程序中,产生该中断的位置不固定,忽而在这里,忽而在那里。发生的时间不确定,有时候程序运了很长时间才遇到,有时候开始运行后没一会就发生了。产生该问题的原因不明,不知如何进行排查。

LAT0026 浮点DSP运算效率不高
(0.2M)
300
2015-07-28

文档说明:该问题由某客户提出,发生在 STM32F407IGT6 器件上。据其工程师讲述:由于在其产品中,需要使用STM32进行大量的浮点数以及浮点DSP运算,所以针对STM32的浮点数运算能力及 DSP 运算能力做了相关的测试,但测试结果不理想。STM32F407 在144MHz 主频下,对于表(一)程序的运算耗时为:9105uS。没有体现出硬件浮点运算应有的运算能力。

LAT0037 进入了已屏蔽的中断
(0.3M)
257
2015-07-28

文档说明:某客户工程师在某型号新产品的设计中,使用了STM32F103XXT6。据其工程师讲述:他们在设计中,使用了一个外部中断,用来检测某事件的发生,从而唤醒低功耗模式下的 STM32。对应于该中断输入,有一中断服务程序,内容如表(一)所示。在实测中发现偶尔会发生在有该外部中断输入时 STM32 并未回到正常的运行状态的情况。测量此时 STM32 的功耗,发现其功耗明显增大,说明已从低功耗唤醒。使用调试工具调试,发现当出现该现象时,程序停留在表(一)所示的中断服务程序中,不能退出。进一步跟踪,发现“行(1)”的判

LAT0049 时钟失效后CPU还会运行
(0.3M)
257
2015-07-28

文档说明:该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品的设计中,STM32 的 HSE 外接 8MHz 的晶体产生振荡,然后通过 STM32 内部的PLL 倍频到 72MHz,作为 STM32 的系统时钟,驱动芯片工作。在 STM32 片外有专用的看门狗芯片,监控 STM32 的运行。STM32 内部的软件会在 STM32 的某个管脚上产生脉冲来复位看门狗。一旦 STM32 没有及时的产生脉冲来复位门狗,则看门狗会认为 STM32 运行不正常,从而复位 STM32。在对该

LAT0155 STM32F7与STM32F4的复位序列比较
(0.3M)
339
(0.0M)
193
2015-07-28

文档说明:初次接触到STM32F7,总会有个疑惑,为什么0地址变成了ITCM RAM的起始地址。系统复位还是从地址0处开始执行吗?如果是,那这似乎看起来是冲突的。实际上,STM32F7基于Cortex-M7内核,Cortex-M7和Cortex-M3/M4的复位序列有了一些不一样。在本文中,将针对这个问题做详细讲解。

LAT0083 Keil中使用STM32F4xx硬件浮点单元
(0.3M)
344
2015-07-28

文档说明:有工程师反应说Keil 下无法使用STM32F4xx 硬件浮点单元,导致当运算浮点时运算时间过长,还有一些人反应不知如何使用芯片内部的复杂数学运算,比如三角函数运算。针对这个部分本文将详细介绍如何使用硬件浮点单元以及相关数学运算。

LAT0041 使用指针调用函数产生 Hard Fault
(0.2M)
284
2015-07-28

文档说明:该问题由某用户提出,发生在 STM32F2xx 器件上。据其工程师讲述:在其产品设计中,使用了第三方的软件库。出于某种原因,第三方不能提供软件库的源代码,只能以二进制映像的形式供其使用。在软件工程中,通过相关设置将该映像定位到某一固定的地址上,用户程序则是通过各个库函数的入口地址来调用相关的库函数。在软件调试过程中,其工程师发现,将库函数的入口地址赋给函数指针,再用函数指针进行函数调用会导致程序跑飞。使用调试器中止程序运行后,发现程序停留在Hard Fault 中断服务程序内。